package demo.api.enterprise;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.codec.binary.Base64;
import org.apache.commons.io.FileUtils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

import util.HttpClientUtil;

/**
 * 4.12	获取文档待签数据
 * 将印章数据放入源PDF文档中，并生成文档待签属性，可使用数字证书对该值进行数字签名，签名方式采用 PKCS7#Detach
 * @throws IOException
 */
public class FileDigest {
	private static String appKey = "cAwut4VATycNMq17NZeFUD63pe83l2OJ";
    private static String appSecrty = "3BAlrfr7lW8kwlCMfo1dXS8Syn5q5qjS";
    private static String baseUrl = "http://smp-test.szitrus.com.cn/smp-api";
    private static String api = "/api/enterprise/file/digest";

	public static void main(String[] args) throws IOException {
		String url = baseUrl.concat(api); 
		// 请求参数
        Map<String, String> params = new HashMap<>();
        // 关键字签章规则
//        JSONObject keywordsRule = new JSONObject();
//        keywordsRule.put("type", "keywords");//关键字盖章
//        keywordsRule.put("text", "深圳市小瑞科技股份有限公司");//关键字
//        keywordsRule.put("page", "0");
//        keywordsRule.put("offsetX", "0");//印章位置横向偏移，0 为不偏移，负数代表往左偏移，正数代表往右偏移，单位为像素
//        keywordsRule.put("offsetY", "0");//印章位置纵向偏移，0 为不偏移，负数代表往下偏
        
        
        JSONObject positionRule = new JSONObject();
        positionRule.put("type", "position");//坐标方式盖章
        positionRule.put("page", "-1");//页码表达式,"0"代表全文检索, "-1"代表最后一页, "1-3"代表 1至3页 
        								//"1,2,3"代表第一页/第二页/第三页检索, 分割符为半角逗号支持组合,例如 "1-3, 4, 5, -1"
        
        positionRule.put("offsetX", "0");//印章位置横向偏移，0 为不偏移，负数代表往左偏移，正数代表往右偏移，单位为像素
        positionRule.put("offsetY", "0");//印章位置纵向偏移，0 为不偏移，负数代表往下偏
        positionRule.put("positionX", "150");//印章在 PDF 文档中的横坐标，单位为像素
        positionRule.put("positionY", "320");//印章在 PDF 文档中的纵坐标，单位为像素
        // 加入关键字盖章规则
        
//        params.put("file_url", "http://xxx.xxx.com/xxx/xxx.pdf");
        params.put("file_data", Base64.encodeBase64String(FileUtils.readFileToByteArray(new File("D:/smp_temp/test.pdf"))));
        params.put("file_extension", "pdf");

        params.put("signer", "zhang_dachui");
        params.put("doc_title", "购销合同");
        params.put("doc_number", "TW-GXHT-20200520A00001");
        params.put("description", "产品购买合同已签署，需要盖章");//用印原因，说明此次盖章的目的

//        params.put("rule", keywordsRule.toJSONString());
        params.put("rule", positionRule.toJSONString());

	    String resStr =  HttpClientUtil.getResponse(url, params, appKey, appSecrty);
	    JSONObject resJson = JSON.parseObject(resStr);	
	    System.out.println(resJson);
	}
}
